package com.vcit.system.domain.clazz;

import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.vcit.common.annotation.Excel;
import com.vcit.common.core.domain.BaseEntity;

/**
 * 分班规则对象 t_clazz_rule
 *
 * @author vcit
 * @date 2025-01-17
 */
public class TClazzRule extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 规则ID */
    private Long id;

    /** 规则名称 */
    @Excel(name = "规则名称")
    private String ruleName;

    /** 班级ID */
   // @Excel(name = "班级ID")
    private Long clazzId;

    /** 班级名称 */
    @Excel(name = "班级名称")
    private String clazzName;

    /** 学生类型（多个用逗号分隔） */
    @Excel(name = "学生类型")
    private String studentTypes;

    /** 学生类型名称（多个用逗号分隔） */
    @Excel(name = "学生类型名称")
    private String studentTypeNames;

    /** 招生年份 */
    @Excel(name = "招生年份")
    private String zsYear;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 规定总人数 */
    @Excel(name="规定人数")
    private Integer totalCount;

    /** 实际分配人数 */
    @Excel(name="实际人数")
    private Integer actualCount;

    /** 专业列表 */
    private List<TClazzRuleMajor> majorList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }

    public String getRuleName() {
        return ruleName;
    }

    public void setClazzId(Long clazzId) {
        this.clazzId = clazzId;
    }

    public Long getClazzId() {
        return clazzId;
    }

    public void setClazzName(String clazzName) {
        this.clazzName = clazzName;
    }

    public String getClazzName() {
        return clazzName;
    }

    public void setStudentTypes(String studentTypes) {
        this.studentTypes = studentTypes;
    }

    public String getStudentTypes() {
        return studentTypes;
    }

    public void setStudentTypeNames(String studentTypeNames) {
        this.studentTypeNames = studentTypeNames;
    }

    public String getStudentTypeNames() {
        return studentTypeNames;
    }

    public void setZsYear(String zsYear) {
        this.zsYear = zsYear;
    }

    public String getZsYear() {
        return zsYear;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setActualCount(Integer actualCount) {
        this.actualCount = actualCount;
    }

    public Integer getActualCount() {
        return actualCount;
    }

    public void setMajorList(List<TClazzRuleMajor> majorList) {
        this.majorList = majorList;
    }

    public List<TClazzRuleMajor> getMajorList() {
        return majorList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ruleName", getRuleName())
            .append("clazzId", getClazzId())
            .append("clazzName", getClazzName())
            .append("studentTypes", getStudentTypes())
            .append("studentTypeNames", getStudentTypeNames())
            .append("zsYear", getZsYear())
            .append("status", getStatus())
            .append("totalCount", getTotalCount())
            .append("actualCount", getActualCount())
            .append("majorList", getMajorList())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
} 